home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 3 / Cream of the Crop 3.iso / editor / me141.zip / ME.DOC next >
Text File  |  1993-11-03  |  34KB  |  754 lines

  1. MaD-Edit Programmeditor
  2. =======================
  3.  
  4. Geschrieben 1988-1993  von  DL6DCM,  Dipl.-Ing. Martin Doppelbauer unter
  5. Verwendung von Turbo-C 2.0. MaD-Edit ist Freeware, d.h. die kostenlose
  6. Weitergabe ist erlaubt (und erwünscht!).
  7.  
  8.  
  9. 1. Einführung
  10.  
  11. MaD-Edit ist  ein allgemeinverwendbarer  Full-Screen Text und Hex-Edi-
  12. tor,  entworfen  speziell  zur Programmentwicklung,  Eingabe  von Batch-
  13. Dateien, Lesen von READMEs usw..  Also  für alle Aufgaben, bei denen die
  14. Benutzung eines großen Textprogrammes zu umständlich wäre.
  15. Außerdem verfügt ME über einen  speziellen  Hex-Modus. Damit können auch 
  16. alle nicht-Textdateien sehr komfortabel bearbeitet werden.
  17.  
  18. Alle Kommandos  von MaD-Edit  sind  darauf  abgestellt,  dem  Benutzer
  19. maximalen Komfort  bei minimalem Aufwand (=Tastendrücke) zu geben. Daher
  20. wurde von  vorneherein nicht versucht, die umständlichen Wordstar kompa-
  21. tiblen Befehle  einzubauen. Vielmehr  orientiert sich  die Syntax am SEE
  22. Editor des DeSmet C Development Package (bzw. dem AEDIT von Intel).
  23. Außerdem wurde besonders auf eine hohe Geschwindigkeit geachtet. Das be-
  24. trifft alle  Belange des  Editors, neben  Lade- und  Speicheroperationen
  25. insbesondere auch die Suchfunktion.
  26. Das Durchsuchen  eines 400 KByte Textes unter vergleichbaren Bedingungen
  27. dauerte z.B.  bei Wordstar (3.4) 45 Sekunden, mit Word (4.0) 20 Sekunden
  28. und mit MaD-Edit 2 Sekunden !
  29. MaD-Edit ist  in der Lage bis zu drei Dateien gleichzeitig zu bearbei-
  30. ten. Textblöcke  können auf  einfachste Art  zwischen den  Texten ausge-
  31. tauscht werden.
  32. Durch die  Makrofunktion besteht die Möglichkeit, eine Reihe von Tasten-
  33. drücken zu speichern, und später über eine Funktionstaste abzurufen.
  34. Auf EGA und VGA Bildschirmen kann wahlweise mit einer höheren  Auflösung 
  35. gearbeitet werden.
  36. Die Editor-Konfiguration  wird auf  Wunsch automatisch abgespeichert, so
  37. daß bei  erneutem Aufruf  alle Textdateien  automatisch geladen  werden.
  38. Mehr noch,  auch alle Sprungziele und die Makros werden restauriert. So-
  39. gar der  Cursor steht an genau derselben Stelle des Bildschirms wie beim
  40. Verlassen des Editors.
  41. Schließlich können  aus dem Editor heraus bis zu drei Programme nachein-
  42. ander aufgerufen  werden. Dies ist besonders praktisch beim Compilieren,
  43. Linken und  Austesten eines  Anwenderprogramms. MaD-Edit selbst belegt
  44. während dessen  nur ca. 40 KByte Speicher. Bei Compiler- oder Linkerfeh-
  45. lern wird der Editor sofort wieder aktiviert, d.h. ohne das Anwenderpro-
  46. gramm auszuführen.
  47.  
  48. MaD-Edit ist  bezüglich der Befehlseingabe teilweise kompatibel zu SEE
  49. aus dem DeSmet C Development Package (Vers. 2.5).
  50. Geschrieben wurde MaD-Edit übrigens in Turbo-C 2.0 .
  51.  
  52. MaD-Edit läuft  auf allen IBM-AT/386/486/586 kompatiblen  Rechnern mit
  53. mindestens 256 KB RAM. Alle gängigen Videokarten werden unterstützt.
  54. Das Programm benutzt einige 286 spezifische Maschinenbefehle, läuft also
  55. nicht mehr auf IBM-PC oder XT Systemen.
  56.  
  57.  
  58.  
  59. 2. Das Konzept
  60.  
  61. MaD-Edit arbeitet  nicht direkt  mit einem  Text auf  Platte. Vielmehr
  62. wird eine Kopie des Textes in den Arbeitsspeicher geladen, und alle wei-
  63. teren Aktionen passieren dort. Der Text auf der Platte wird nicht verän-
  64. dert bevor die Kopie im Arbeitsspeicher zurückgeschrieben wird.
  65. Texte mit  größerer Kapazität als der Arbeitsspeicher können nicht bear-
  66. beitet werden,  allerdings stehen  auf einem 640 KB System immerhin über
  67. 450 KB für den Text zur Verfügung (zuzüglich 30 KByte Copy-Buffer) - das
  68. sollte reichen!
  69. MaD-Edit kennt  nur drei Steuerzeichen: TAB (HEX 09) und die CRLF Kom-
  70. bination (HEX  0D0A). Diese Zeichen sind die einzigen, welche der Editor
  71. nicht als  Text verarbeiten  kann. Alle  übrigen 253 Bytes dürfen einge-
  72. geben bzw. als Text benutzt werden. Auch Unix-Textdateien, welche ledig-
  73. lich ein einzelnes LF(0A) als Zeilentrennung benutzen, können bearbeitet
  74. werden. Beim Ausdruck setzt ME das einzelne LF in eine CR LF Kombination
  75. um, so daß ein normal konfigurierter PC-Drucker damit zurechtkommt.
  76.  
  77. Befehle werden  im Editor  ausgeführt, indem man ihren ersten Buchstaben
  78. tippt. Jeder Befehl hat einen zugeordneten Buchstaben. Alle  vorhandenen
  79. Befehle erscheinen zur Erinnerung in der obersten Zeile des Bildschirms.
  80. Um zum  Beispiel den  'Delete' Befehl  auszuführen muß einfach der Buch-
  81. stabe <D>  getippt werden  (Groß -  Kleinschreibung spielt  dabei  keine
  82. Rolle).
  83.  
  84. Immer wenn  ein Textblock mit dem 'Delete'-Befehl gelöscht wird, wandert
  85. er in  ein bestimmtes  Gebiet, den  Copy-Buffer. Textblöcke  die mit dem
  86. 'Buffer'-Befehl markiert werden, stehen danach ebenfalls im Copy-Buffer.
  87. Wenn der  'Copy'-Befehl benutzt  wird, fügt  MaD-Edit den  Inhalt  des
  88. Copy-Buffers an  der aktuellen Cursorposition in den Text ein. Der Copy-
  89. Buffer bleibt  erhalten solange der Editor läuft. Er wird von allen (bis
  90. zu drei) Dateien gleichermaßen benutzt. Dies ist der Mechanismus um Text
  91. von einer Datei zur anderen zu transferrieren, oder um Text in einer Da-
  92. tei zu verschieben.
  93.  
  94. Der Cursor  zeigt den  Platz, an dem alle Aktionen passieren. Er kann in
  95. einem von  drei Zuständen  sein: zweizeilig (Kommando-Modus), dreizeilig
  96. (Insert-Modus) oder  fünfzeilig (Exchange-Modus).  Der Cursor  ist immer
  97. auf dem  Bildschirm sichtbar. Wenn er an den Rand des Bildschirms bewegt
  98. wird, rollt  der Text  entsprechend. Dies geschieht sowohl vertikal, als
  99. auch horizontal.
  100. MaD-Edit kennt  keinerlei Beschränkungen bezüglich der Zeilenlänge. Am
  101. Ende einer Zeile ist jeweils die Return-Taste zu drücken.
  102.  
  103.  
  104.  
  105. 3. Starten des Editors
  106.  
  107. Um den  Editor mit  einem neuen  Text zu  starten, gibt man auf der DOS-
  108. Ebene lediglich:
  109.  
  110. ME Datei
  111.  
  112. ein. Um  mehrere Dateien  gleichzeitig zu bearbeiten (bis zu drei), sind
  113. diese beim Start der Reihe nach anzugeben:
  114.  
  115. ME Datei1 Datei2 Datei3
  116.  
  117. Wildcards (*)  sind ebenfalls erlaubt. So lädt "ME *.TXT" beispielsweise
  118. die ersten drei Textdateien im aktuellen Unterverzeichnis in den Editor.
  119.  
  120. Falls der  'Save-Setup' Modus  eingeschaltet ist,  merkt sich MaD-Edit
  121. beim Verlassen  alle benutzen  Dateien, den  Cursorstandort und anderes.
  122. Dann kann durch einfache Eingabe von
  123.  
  124. ME
  125.  
  126. der jeweils  letzte Editorstatus  wieder  restauriert  werden.  Übrigens
  127. braucht bei  einer Textdatei  keine Extension  angegeben zu werden, wenn
  128. sie vom Typ ".C", ".H", ".ASM", ".BAT", ".FOR", ".PRG", ".PAS",  ".SYS", 
  129. ".BAS", ".TXT", ".ME", ".DAT" oder ".DOC" ist.
  130. Lediglich bei Mehrdeutigkeiten ist dann noch die Extension erforderlich.
  131. Beispiel: Um die MS-DOS Konfigurationsdateien zu bearbeiten reicht :
  132.  
  133. ME CONFIG AUTOEXEC
  134.  
  135. im Hauptverzeichnis des Laufwerks C als Eingabe völlig aus.
  136.  
  137. Nach dem  Laden meldet  sich MaD-Edit  im Kommandomodus.  Die obersten
  138. beiden Bildschirmzeilen sind grundsätzlich für Meldungen des Editors be-
  139. stimmt, der Rest steht für den Text zur Verfügung.
  140.  
  141. Im Kommandomodus  wird in der obersten  Bildschirmzeile  zur  Erinnerung
  142. eine Befehlsliste  gezeigt. Es gibt drei  solche Zeilen,  sie können mit 
  143. der Taste <SPACE> umgeschaltet werden. Die Benutzung der Befehle ist un-
  144. abhängig von der angezeigten Zeile.
  145.  
  146.  
  147. Insert Xchange   Buffer Delete Copy    Find -find Replace Again  -space-
  148.  
  149.  oder:
  150.  
  151. Load Write  Get Put  Quit  Tag Jump   Setup  Other Half  Makro   -space-
  152.  
  153.  oder:
  154.  
  155. priNt   Execute   dUal   ?   #   ()   <TAB>                      -space-
  156.  
  157.  
  158. In der zweiten Bildschirmzeile wird Name und Größe des bearbeiteten Tex-
  159. tes sowie die Cursorspalte angezeigt, z.B.:
  160.  
  161. -  3-  123         <ME.c> 33523 Bytes
  162.  
  163. Der Cursor befindet sich in Spalte 3 ('-  3-').
  164. Die Zahl  direkt nach den '-  3-' Zeichen ist ein Zähler, der im Komman-
  165. domodus eingeben  werden kann.  Seine Bedeutung wird weiter unten erläu-
  166. tert. In spitzen Klammern wird der Name des bearbeiteten Textes gezeigt.
  167.  
  168. Ein Befehl  wird durch Eingabe seines Anfangsbuchstabens aufgerufen, und
  169. zwar auch  dann, wenn  er in  der gerade  nicht  gezeigten  Befehlsliste
  170. steht. Ob die Eingabe in Groß- oder Kleinbuchstaben erfolgt spielt keine
  171. Rolle.
  172.  
  173. In der  zweiten Zeile  des Bildschirms werden unterschiedliche Statusan-
  174. zeigen und Texte der verschiedenen Kommandos angezeigt.
  175.  
  176.  
  177.  
  178. 4. Eingabe und Änderung von Text
  179.  
  180. Um Text  einzugeben muß  der Insert-Modus  aufgerufen werden.  Dies kann
  181. durch Eingabe  des Befehls  <I>, oder  durch Drücken der <INS> Taste ge-
  182. schehen. Die  Befehlsliste verschwindet jetzt, und es wird eine typische
  183. Kommandozeile angezeigt.  In ihr stehen kurz zusammengefasst alle mögli-
  184. chen Aktionen, die nun ausgeführt werden können:
  185.  
  186. Insert: <Cursor keys> , <ESC> to exit , <INS> for Exchange
  187.  
  188. Sie können  jetzt also  entweder die Cursortasten verwenden, den Insert-
  189. Modus mit <ESC> verlassen, oder mit <INS> den Exchange-Modus aufrufen.
  190. Natürlich darf auch Text eingegeben werden.
  191.  
  192. Die Tastenkombination  ^<C> oder  ^<SCROLL LOCK>  bricht übrigens grund-
  193. sätzlich alle Befehle ab (das Zeichen ^ steht für die <CTRL> Taste).
  194.  
  195. Der Exchange-Modus arbeitet ähnlich wie der Insert-Modus, lediglich wird
  196. der bestehende Text hier von neu eingegebenen Zeichen überschrieben. Mit
  197. der Taste  <INS> kann jeweils zwischen Insert und Exchange-Modus gewech-
  198. selt werden.
  199.  
  200.  
  201.  
  202. 5. Die Tastatur
  203. 5.1 Cursorbewegungen
  204.  
  205. <HOME>   Der Cursor bewegt sich zum Anfang der aktuellen Zeile.
  206.  
  207. ^<HOME>  Der Cursor bewegt sich zur obersten Bildschirmzeile in
  208.          die erste Spalte.
  209.  
  210. <END>    Der Cursor geht zum Ende der aktuellen Zeile
  211.  
  212. ^<END>   Der Cursor geht zum Anfang der letzten Zeile auf dem
  213.          Bildschirm.
  214.  
  215. <PGUP>   Der Cursor wird um 20 Zeilen nach oben verschoben
  216.  
  217. ^<PGUP>  Der Cursor geht zum Textanfang
  218.  
  219. <PGDN>   Der Cursor wird um 20 Zeilen nach unten verschoben
  220.  
  221. ^<PGDN>  Der Cursor geht zum Textende
  222.  
  223. <Pfeiltasten> Der Cursor wird in die entsprechende Richtung ver-
  224.          schoben. Dabei wird der Text auf dem Bildschirm
  225.          gescrollt, falls dies nötig sein sollte.
  226.  
  227. ^<Pf links>   Der Cursor geht zum Ende des vorigen Wortes
  228.  
  229. ^<Pf rechts>  Der Cursor geht zum Anfang des nächsten Wortes
  230.  
  231.  
  232. 5.2 Editiertasten
  233.  
  234. <BS>    Die Backspace-Taste löscht das Zeichen links vom
  235.         Cursor. Der Rest der Zeile rückt entsprechend nach.
  236.         Durch das Löschen einer CRLF Kombination (bzw. eines
  237.         einzelnen LF in Unix Dateien) werden zwei Zeilen zu 
  238.         einer zusammengefügt.
  239.  
  240. <DEL>   Das Zeichen unter dem Cursor wird gelöscht. Wenn
  241.         dies eine  CRLF Kombination sein sollte, werden auch hier
  242.         zwei Zeilen zusammengefügt.
  243.  
  244. <INS>   Die <INS> Taste wird benutzt, um zwischen Insert- und
  245.         Exchange-Modus umzuschalten.
  246.  
  247. <F1> - <F10>  Die zehn Funktionstasten stehen für Makros zur Ver-
  248.         fügung. Bis zu 99 Zeichen pro Taste lassen sich belegen.
  249.  
  250. ^<C>
  251. ^<BREAK> Beenden einer Befehlsausführung. Dies ist zum Beispiel
  252.         nützlich, wenn Sie sich entschließen das  FIND-Kommando
  253.         doch nicht aufzurufen, obwohl Sie schon mitten in der
  254.         Eingabe eines Suchtextes sind.
  255.  
  256. Diese Tasten funktionieren alle auch im Kommandomodus.
  257.  
  258.  
  259. 6. Befehle
  260.  
  261. Aus dem  Kommandomodus können  die einzelnen Befehle durch Eingabe ihres
  262. Anfangsbuchstabens gestartet werden.
  263.  
  264. Viele Befehle benutzen einen Zähler, um automatisch mehrfach abzulaufen.
  265. Diese Zahl  wird dazu immer vor dem Aufruf des Befehls vom Kommandomodus
  266. aus eingegeben.  Um den  angezeigten Zähler zu löschen ohne einen Befehl
  267. auszuführen kann die <ESC> Taste benutzt werden.
  268.  
  269. In der  folgenden Befehlsliste  deutet die  Schreibweise <Zähler> darauf
  270. hin, daß  der Befehl mehrfach ablaufen kann, wenn zuvor eine Zahl einge-
  271. geben wurde.
  272.  
  273.  
  274. Insert
  275. Der Insert-Befehl  wird benutzt,  um den  Editor in  den Eingabemodus zu
  276. schalten. Jetzt kann Text eingegeben werden. Eventuell schon vorhandener
  277. Text wird  dabei zu  Seite geschoben.  Die Cursortasten  sind selbstver-
  278. ständlich aktiv,  auch dürfen über die Funktionstasten Makros aufgerufen
  279. werden. Wenn  die <INS>  Taste gedrückt wird, wechselt der Editor in den
  280. Exchange-Modus.
  281. Mit <ESC> oder ^<C> wird der Insert-Modus verlassen.
  282.  
  283.  
  284. Xchange
  285. Der Exchange-Modus ist vergleichbar mit dem Insert-Modus, lediglich wird
  286. hier der vorhandene Text durch Neueingaben überschrieben.
  287. Die einzigen Zeichen die nicht überschrieben werden sind Returns. Einga-
  288. ben am Zeilenende werden also (wie im Insert-Modus) angefügt.
  289.  
  290.  
  291. Buffer
  292. Der Buffer-Befehl  wird dazu  benutzt einen Textblock in den Copy-Buffer
  293. zu kopieren.  Dieser Copy-Buffer  ist ein interner Speicher der dazu be-
  294. nutzt wird,  den letzten  mit Buffer  markierten oder  Delete gelöschten
  295. Textblock zu  halten. Um  den Buffer-Befehl  zu benutzen, muß zuerst der
  296. Cursor an  den Anfang  des gewünschten  Textblocks bewegt  werden.  Dann
  297. tippe man  'B', wie  Buffer. Das  Zeichen unter dem Cursor wird nun tem-
  298. porär durch  ein '+' überschrieben, um den Anfang des Textblocks zu mar-
  299. kieren.
  300. Die Befehlsliste  verschwindet nun  vom Schirm und es erscheint folgende
  301. Anzeige:
  302.  
  303. Buffer:<Cursor keys>, Find -find Jump Again, <B> to buffer, <CTRL-C> abort
  304.  
  305. Nun muß  der Cursor  zum Ende  des Blocks  bewegt werden.  Dies kann zum
  306. einen mit  den Cursortasten  geschehen. Es ist aber auch möglich die Be-
  307. fehle 'Find' , '-find' , 'Jump' oder 'Again' zu benutzen. Sie dürfen so-
  308. gar mit einem Zähler eingegeben werden.
  309. Wenn der  Cursor sich  am gewünschten  Blockende befindet drücke man die
  310. <B> Taste  erneut, um den Buffer-Befehl abzuschließen. Nun wird der Text
  311. in den  Copy-Buffer gespeichert. Der vorige Inhalt des Copy-Buffers geht
  312. verloren.
  313.  
  314.  
  315. Delete
  316. Der Delete-Befehl löscht einen Textblock. Der gelöschte Text wird in den
  317. Copy-Buffer gebracht.  Die Benutzung  von Delete ist genauso wie die des
  318. Buffer-Befehls.
  319.  
  320.  
  321.  <Zähler> Copy
  322. Der Inhalt  des Copy-Buffers wird an der aktuellen Cursorposition in den
  323. Text eingefügt. Falls zuvor eine Zahl eingetippt wurde, setzt MaD-Edit
  324. den Text entsprechend häufig ein. Der Copy-Buffer wird duch den Copy-Be-
  325. fehl nicht verändert.
  326.  
  327.  
  328. <Zähler> Find
  329. Der Find-Befehl  wird benutzt  um das nächste Auftreten eines bestimmten
  330. Suchtextes zu finden. Die Suche geht von der Cursorposition bis zum Tex-
  331. tende. Nach dem Aufruf des Befehls durch die Taste <F>fragt   MaD-Edit
  332. zunächst nach  einem Suchtext.  Der zuletzt  bei einem  'Find' , '-find'
  333. oder 'Replace'  Befehl eingegebene  Suchtext erscheint  erneut. Er  kann
  334. übernommen, mit <BS> geändert oder mit <ESC> gelöscht werden.
  335. ^<C> bricht den Find-Befehl ab.
  336. Falls der Suchtext nicht gefunden wird erscheint die Meldung 'Can't find
  337. ...'. Drücken  Sie dann eine beliebige Taste zur Bestätigung. Der Cursor
  338. verändert seinen Standort nicht.
  339. Bei erfolgreicher  Suche befindet sich der Cursor auf dem ersten Zeichen
  340. des Suchtextes.
  341. Wahlweise kann ein Zähler vor dem Find-Befehl eingegeben werden. Es wird
  342. dann entsprechend  oft nach  dem Text  gesucht, bevor der Befehl beendet
  343. ist. Beispielsweise sucht
  344.     3 F hello <RETURN>
  345. nach dem dritten Auftreten des Textes 'hello' ab Cursorposition.
  346.  
  347.  
  348. <Zähler> -find
  349. Der -find-Befehl arbeitet entsprechend dem Find-Befehl, nur daß der Text
  350. jetzt rückwärts  von der  Cursorposition bis  zum Dateianfang durchsucht
  351. wird. Auch hier ist die Angabe eines Zählers möglich.
  352.  
  353.  
  354. <Zähler> Replace
  355. Mit dem  Replace-Befehl kann  man einen  bestimmten Text suchen, und an-
  356. schließend automatisch  durch einen  anderen ersetzen lassen. Dieser Be-
  357. fehl benutzt denselben Suchtext wie 'Find' und '-find'. Nach der Eingabe
  358. des Suchtextes wird der Ersetzungstext abgefragt. Der Editor findet dann
  359. das ab Cursorposition nächste Auftreten des Suchtextes, und ersetzt die-
  360. sen entsprechend.
  361. Wenn der Text nicht gefunden werden konnte erfolgt eine Fehleranzeige.
  362. Mit dem  optionalen Zähler  kann gesteuert  werden, wie oft das Kommando
  363. ausgeführt wird.
  364.  
  365.  
  366. <Zähler> Again
  367. Der Again-Befehl  wiederholt die  jeweils letzte 'Find' , '-find' , oder
  368. 'Replace' Aktion,  ohne irgendwelche Abfragen zu machen. Auch dieser Be-
  369. fehl kann mehrfach über einen Zähler ausgeführt werden.
  370.  
  371. Load
  372. Mit dem  Load-Befehl wird  ein neuer Text in den Speicher geladen. Falls
  373. am alten  Text Änderungen  vorgenommen wurden,  die noch nicht abgespei-
  374. chert sind, weist MaD-Edit darauf hin. Es erscheint dann der Text:
  375.     Load: File changed. Save ? (y/n):
  376. Durch Eingabe  von <Y>  oder <J>  wird  der  alte  Text  gesichert.  An-
  377. schließend wird  nach dem  Namen der  neuen Datei gefragt. Der bisherige
  378. Dateiname wird  dort standardmäßig  vorgegeben, kann  aber mit <ESC> ge-
  379. löscht werden.
  380. ^<C> darf  wiederum benutzt werden, um den Befehl vorzeitig abzubrechen.
  381. Dann bleibt der alte Text im Speicher erhalten.
  382.  
  383.  
  384. Write
  385. Das Gegenstück  zu 'Load'. Der Text im Speicher wird zur Platte/Diskette
  386. übertragen. Der Dateiname wird zuvor abgefragt und kann geändert werden.
  387.  
  388.  
  389. Get
  390. Der Get-Befehl  wird benutzt,  um den  Inhalt einer anderen Datei in den
  391. Text ab  Cursorposition einzufügen. Dazu muß der Cursor zunächst auf den
  392. gewünschten Einfüge-Punkt  bewegt werden. Dann ist die Taste <G> zu drü-
  393. cken. Der  Get-Befehl fragt  jetzt nach einem Dateinamen. Die Datei wird
  394. nun gelesen und in den Text eingefügt.
  395. Falls sie nicht existiert wird eine Fehlermeldung ausgegeben.
  396.  
  397.  
  398. Put
  399. Das Gegenstück  zum Get-Befehl. Ein Block des Textes im Speicher wird in
  400. eine seperate  Datei geschrieben. Der Cursor muß wieder zunächst auf den
  401. Anfang des  Blocks bewegt  werden, danach  ist die Taste <P> zu drücken.
  402. Jetzt erscheint folgende Befehlszeile:
  403.  
  404. Put: <Cursor keys>, Find -find Jump Again, <P> to put, <CTRL-C> abort
  405.  
  406. Genau wie beim Buffer-Befehl kann das Ende des Textblocks jetzt über die
  407. Pfeiltasten oder mit einem Suchbefehl angefahren werden. Die Eingabe ei-
  408. nes Zählers  für die Suche ist erlaubt, auch das Löschen des Zählers mit
  409. <ESC>. Durch  die Tastenkombination  ^<C> kann dieser Befehl (wie immer)
  410. abgebrochen werden.
  411. Wenn der  Cursor auf  der gewünschten Position steht drücken Sie die <P>
  412. Taste erneut, um den Befehl abzuschließen.
  413. MaD-Edit fragt  dann nach  dem Dateinamen.  Dieser ist mit <RETURN> zu
  414. bestätigen. Danach wird der Textblock gespeichert.
  415.  
  416.  
  417. Quit
  418. Der Quit-Befehl  beendet die  Editor-Sitzung. Falls der Text im Speicher
  419. geändert, aber noch nicht abgespeichert wurde wird dies angezeigt:
  420.     Quit: File changed. Save? (y/n):
  421. Durch Eingabe  von <Y>  oder <J>  wird der Text gespeichert. ^<C> bricht
  422. den Quit-Befehl an dieser Stelle ab.
  423.  
  424.  
  425. Tag
  426. Der Tag-Befehl  wird benutzt,  um bis zu vier (unsichtbare) Markierungen
  427. in den  Text einzubringen.  Die so  markierten  Textstellen  können  an-
  428. schließend mit  dem Jump-Befehl  (siehe unten)  angefahren werden.  Beim
  429. Einfügen oder  Löschen von  Text verschieben  sich die Markierungen ent-
  430. sprechend. Nach Aufruf von <T> erscheint folgendes Menü:
  431.     Tag: A, B, C, D
  432. Nun kann  durch Tippen des entsprechenden Buchstabens eine Markierung an
  433. der Cursorposition gesetzt werden.
  434.  
  435.  
  436. <Zähler> Jump
  437. Der Jump-Befehl  kann auf  zwei Arten wirken. Wenn vor Aufruf ein Zähler
  438. eingegeben wurde,  springt der  Cursor auf den Anfang der entsprechenden
  439. Zeile des Textes. Die Zeilen werden dazu (beginnend am Textanfang) von 1
  440. an fortlaufend durchgezählt.
  441. Ohne Eingabe eines Zählers erscheint nach Drücken von <J> das Menü:
  442.     Jump tag: A, B, C, D
  443. Der Editor  erwartet nun einen Buchstaben von <A> bis <D>, um den Cursor
  444. an das entsprechende Tag zu bewegen.
  445.  
  446.  
  447. Setup
  448. Mit dem  Setup werden  verschiedene Voreinstellungen  des Editors verän-
  449. dert. Das Befehlsmenü verschwindet dazu nach dem Drücken von <S>, und es
  450. erscheint:
  451.  
  452. Setup: Tab Indent Video Save-setup Auto-insert Head-col text-Col Extern
  453. -----   4   Yes   80x25     No         No         07       07
  454.  
  455. Die einzelnen  Optionen lassen sich jetzt durch Eingabe des jeweils groß
  456. geschriebenen Buchstabens  (T,I,V,S,A,H,C,E) verändern. Um den Setup-Mo-
  457. dus zu  verlassen drücke  man <ESC>  oder ^<C>. Die Veränderungen werden
  458. jetzt sofort sichtbar.
  459.  
  460. Tab:    Die  Tab-Angabe  steuert die Expansion von Tabulator-Zeichen im
  461.           Text. Normalerweise  steht dieser Wert auf acht. Er kann durch
  462.           mehrfaches Tippen von <T> zwischen 3 und 8 variiert werden.
  463.  
  464. Indent:  Diese Option bestimmt, ob Tabulatorzeichen vom Anfang der vor-
  465.           herigen Zeile  beim Drücken  von <RETURN>  an den  Anfang  der
  466.           neuen Zeile  kopiert werden. Damit wird ein linksbündiges Ein-
  467.           geben von  eingerücktem Text möglich, ohne daß nach einem Zei-
  468.           lenwechsel entsprechend häufig auf <TAB> getippt werden müßte.
  469.           Außerdem wird  ein spezieller  Modus für  'C' -  Programmierer
  470.           wirksam:
  471.         Falls direkt  nach '{' die  <RETURN> Taste betätigt wird, rückt
  472.           die nachfolgende Zeile um einen weiteren Tab ein.
  473.         Falls direkt nach '}' die  <RETURN> Taste betätigt wird und das
  474.           Zeichen vor  '}' ein  Tab ist,  wird dieser  Tab gelöscht, die
  475.           Klammer also zurückgesetzt.
  476.         Beispiel:
  477.     main()
  478.     {
  479.         int i;
  480.         for (i=1;i<10;i++) {
  481.             printf("hello, world\n");
  482.         }
  483.     }
  484.     
  485.         Bei der  Eingabe des Beispiels wurde die  <TAB> Taste nicht be-
  486.           tätigt! Alle Einrückungen stammen von MaD-Edit.
  487.     
  488. Video:   Im Moment  werden vier Auflösungen unterstützt: 80x25 auf CGA,
  489.           Hercules, EGA und VGA. 80x50 auf EGA und VGA. 100x40 und 
  490.           132x44 auf VGA Karten mit ET4000 Chip.
  491.  
  492. Save-setup:   Dieser Schalter  steuert die automatische Statusspeicher-
  493.           ung beim  Verlassen des  Editors mit  'Quit'. Wenn  er  einge-
  494.           schaltet ist, erfolgt die Speicherung in der Datei 'ME.SET' im
  495.           aktuellen Unterverzeichnis. Folgende Informationen werden dann
  496.           bei einem nachfolgenden Aufruf des Editors restauriert:
  497.         - Alle geladenen Dateien (bis zu drei)
  498.         - Der Bearbeitungsmodus jeder Datei (Text oder Dual)
  499.         - Die Position des Textes auf dem Bildschirm
  500.         - Die Position des Cursors im Text
  501.         - Die vier Sprungziele (' Tag') für jede Datei
  502.         - Die Funktionstastenbelegung (' Makro')
  503.         - Der ' Find', '-find' und 'Replace' Text
  504.         - Die externen Kommandozeilen (' Extern')
  505.         - Alle Setup-Einstellungen
  506. Es wird ein 'ME.SET' pro Unterverzeichnis erstellt. Soll stattdessen nur
  507. eine  globale Setup-Datei  verwendet werden,  so benutzt man den  Befehl
  508. APPEND  (in MS-DOS)  um einen Pfad auf ein entsprechendes Verzeichnis zu
  509. erstellen, und speichert dort die globale 'ME.SET'. 
  510. N.B.: Die alten Setup-Dateien sind mit der  Version 1.40 nicht  kompati-
  511. bel. Bitte von der Platte löschen. 
  512.  
  513.  
  514. Auto-insert:  Die 'Auto-Insert'  Funktion zwingt  den Editor  nach  der
  515.           Ausführung jedes Befehls sofort wieder in den Insert-Modus zu-
  516.           rück. Daher  kann immer  nur ein  Befehl auf einmal eingegeben
  517.           werden. Für den nächsten Befehl muß der Insert-Modus erst wie-
  518.           der mit <ESC> verlassen werden.
  519.  
  520. Head-col: Hier wird  die Farbe der beiden Kopfzeilen angegeben. Sie kann
  521.           durch Drücken  der Taste <H> schrittweise zwischen 01h und 7Fh
  522.           erhöht werden. Die Taste <h> vermindert den Farbcode.
  523.  
  524. text-Col: Mit  den Tasten  <C> und <c>  wird  entsprechend die Farbe des 
  525.           Textes verändert.
  526.  
  527. Extern:  MaD-Edit verfügt über die Möglichkeit externe Befehle ablau-
  528.           fen zu  lassen, ohne den Editor zu beenden. Dies ist besonders
  529.           nützlich beim  Schreiben von  Programmen: Compilieren,  Linken
  530.           und Austesten können aus dem Editor heraus vorgenommen werden.
  531.           MaD-Edit selbst belegt während der Ausführung nur etwa 60 KB
  532.           Speicher für sich.
  533.         Bis zu  drei Befehle  dürfen eingegeben werden, die dann nach-
  534.           einander zur  Ausführung kommen.  Dabei wird überwacht, ob ein
  535.           Programm mit  einem Fehler  beendet wurde (z.B. der Compiler),
  536.           und die  weitere Ausführung  der anderen Programme dann unter-
  537.           bunden.
  538.         Die Aufrufzeilen der (bis zu drei) Programme können mit dieser
  539.           Option des  Setup-Menüs eingegeben  werden. Für  den Programm-
  540.           start existiert ein eigener Befehl (s.u.).
  541.         N.B.: Batch-Dateien und residente Befehle müssen innerhalb ei-
  542.           ner Kopie  des 'COMMAND.COM'  ablaufen (Beispiel: "COMMAND  /C
  543.           DIR"). Programme  können direkt  gestartet  werden  (Beispiel:
  544.           "CHKDSK").  Das gestartete  Programm (auch  'COMMAND.COM') muß
  545.           natürlich  im  DOS-Suchpfad  stehen, sonst kommt  "ERROR: File
  546.           not found".
  547.  
  548.  
  549. Other
  550. Der Other-Befehl  wird benutzt,  um zwischen  der Bearbeitung der bis zu
  551. drei möglichen  Texte umzuschalten.  Schrittweise wird jeweils von einem
  552. zum nächsten  Text gewechselt. Um vom zweiten Text wieder auf den ersten
  553. zurückzuschalten ist also zweimal <O> zu betätigen.
  554.  
  555.  
  556. Makro
  557. Alle zehn  Funktionstasten (F1  - F10)  stehen zur freien Programmierung
  558. zur Verfügung.  Bis zu  99 Tastenanschläge  pro Taste können aufgenommen
  559. werden, und zwar auch Steuerzeichen (z.B. <HOME> oder <DELETE>). Der Ma-
  560. kro-Befehl wird  zur Neubelegung  einer Taste benutzt. Das Abrufen eines
  561. Makros geschieht danach einfach durch Drücken der entsprechenden Funkti-
  562. onstaste.
  563. Nach Betätigung von <M> fragt MaD-Edit nach, welche Taste programmiert
  564. werden soll  (F1 -  F10). Wenn  eine Funktionstaste ausgewählt wurde be-
  565. ginnt die Aufnahme (der eventuelle alte Inhalt wird gelöscht).
  566. Jetzt können die gewünschten Tastenanschläge eingegeben werden.
  567. Um die  Aufnahme zu  beenden ist  die Funktionstaste ein weiteres Mal zu
  568. betätigen.
  569. Ein Makro  kann keinen  Aufruf eines anderen Makro beinhalten. Beim Ver-
  570. such eine  andere Funktionstaste  zu aktivieren  wird die  Aufnahme  ge-
  571. stoppt.
  572.  
  573.  
  574. Execute
  575. Mit diesem  Befehl können  bis zu drei externe Kommandos ablaufen. Falls
  576. sich die  Texte im Speicher geändert haben sollten, erfolgt vorher (ähn-
  577. lich wie beim Quit-Befehl) eine Abfrage:
  578.     Execute: File changed. Save ? (y/n):
  579. Mit <J>  oder <Y>  wird die Abspeicherung veranlasst, ^<C> oder ^<BREAK>
  580. bricht den Befehl an dieser Stelle ab.
  581. Nun laufen  die Befehle ab, welche zuvor im Setup-Menü eingegeben wurden
  582. (siehe oben).  Anschließend restauriert  der Editor  seinen alten  Stand
  583. vollständig.
  584.  
  585. Schließlich gibt es noch zwei weitere Kommandos. Sie stehen nicht in der
  586. Befehlsliste, können aber nützlich sein:
  587.  
  588.  
  589. #
  590. Die aktuelle Zeilennummer wird ausgegeben.
  591.  
  592.  
  593. {}()[]
  594. Wenn sich  der Cursor  auf einer  linken Klammer  befindet und eines von
  595. diesen Zeichen  eingegeben wird,  springt er  auf die  korrespondierende
  596. rechte Klammer nach unten. Analog findet er auch die (oberhalb liegende)
  597. linke Klammer wenn er sich auf einer rechten Klammer befindet.
  598. Dies ist nützlich, um bei kompizierten Ausdrücken zusammengehörige Klam-
  599. merpaare zu finden.
  600. Allerdings erkennen diese Befehle keine Kommentare im Programmtext. Ein-
  601. zelne Klammern in Kommentarzeilen bringen die Suchroutine durcheinander.
  602.  
  603.  
  604.  
  605. 7. Der Dual-Modus
  606.  
  607. MaD-Edit kann auch als leistungsfähiger Hex-Code Editor verwendet wer-
  608. den. Zum Umschalten dient der Befehl  dUal (Taste <U>).  Der Cursor ver-
  609. ändert seine Position gegenüber dem Textmodus nicht.  Man kann also auch
  610. ASCII Texte im Hexmodus betrachten und dann wieder zum Textmodus zurück-
  611. schalten.
  612.  
  613. Beim Laden einer Datei versucht ME selbstständig herauszufinden,  ob der
  614. Dual- oder der Textmodus zur Bearbeitung besser geeignet wären.
  615.  
  616. Wird der Dateiname ohne Extension eingegeben, so erkennt  ME automatisch  
  617. ".EXE",".COM" und ".OVL" Files und bearbeitet diese immer im Dual-Modus.
  618. Bei allen anderen Dateien erfolgt die  automatische  Umschaltung,  falls
  619. Zeilen mit mehr als 256  Zeichen  enthalten  sind  (dies wird beim Laden  
  620. abgeprüft).
  621.  
  622. Unabhängig von dieser Vorgabe läßt sich aber  jede Datei  in beiden Modi
  623. bearbeiten (einfach mit <U> umschalten).
  624.  
  625.  
  626. Eine Datei wird folgendermaßen auf dem Bildschirm dargestellt:
  627.  
  628. 006AD0(27344): 49 6D 20 44 75 61 6C 2D 4D 6F 64 75 73 20 66 75  Im Dual-Modus fu
  629. 006AE0(27360): 6E 6B 74 69 6F 6E 69 65 72 65 6E 20 64 69 65 20  nktionieren die
  630. ...
  631. ------!-----   -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  ----------------
  632.   !     !      !         < HEX - Darstellung >               !  !<ASCII-Darst.>!
  633.   !     !      ! 
  634.   !     !      !- 16 aufeinanderfolgende Datenbytes
  635.   !     !-  Adresse des ersten Zeichens in Dezimal (nur bis 65536)
  636.   !- Adresse des ersten Zeichens in Hexadezimal
  637.  
  638. Die Adressen zählen ab  0 bei Dateianfang.  Die Dezimale Darstellung ist 
  639. immer Modulo 65536 (das Byte 65536 wird also wieder als 0 angezeigt).
  640.  
  641. Im  Dual-Modus  funktionieren die meisten  Befehle wie  bereits  für den
  642. Text-Modus beschrieben. Zusätzlich kann der  Cursor mit  <TAB>  zwischen
  643. dem HEX-Bereich und dem ASCII-Bereich umgeschaltet werden.
  644.  
  645. Dies hat auch Einfluß auf den Find Befehl.  Je  nach Cursorposition wird
  646. ein ASCII-Text oder eine Gruppe von  HEX-Paaren als Suchtext  abgefragt.
  647. Achtung: der Find-Befehl kann nicht nach NULL-Bytes (00h) suchen!
  648.  
  649. Der Exchange Befehl zur Eingabe von Zeichen unterscheidet ebenfalls zwi-
  650. schen ASCII und HEX-Modus.
  651.  
  652. Der Insert-Befehl und die Tasten <DEL> bzw. <BACKSPACE> funktionieren im 
  653. Dual-Modus nicht, da es meistens nicht sehr sinnvoll ist eine Binärdatei 
  654. in ihrer Länge zu verändern.
  655. Soll dies trotzdem geschehen, so kann mittels  Delete,  Copy und  Buffer
  656. Platz geschaffen werden.
  657.  
  658. Der Print-Befehl druckt einen Hex-Dump.
  659.  
  660.  
  661.  
  662.  
  663. Das wars.
  664. Anregungen und (konstruktive) Kritik sind immer willkommen.
  665.  
  666.  
  667. Viel Spaß und vy 73, DL6DCM
  668.  
  669. Martin Doppelbauer.
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680. Verbesserungen in der Version 1.2 von MaD-Edit
  681. ================================================
  682. von DL6DCM / Martin Doppelbauer, 20.05.90, 09.06.90, 10.06.90
  683.  
  684. - Der Zähler wird bei Auto-Insert Modus nicht gelöscht.
  685. - Ein Zähler über 32767 ist möglich.
  686. - Alter Text bei Load/Find etc. verschwindet bei jeder anderen Taste als INS,
  687.   BS,RET, END, HOME oder der Leertaste.
  688.   (bisher blieb der Text bei Sonderzeichen wie '$%&' auch stehen)
  689. - Während langer Such/Ersetz/Sprungoperationen wird eine Meldung gezeigt.
  690. - REPLACE geht *wesentlich* schneller als zuvor.
  691. - In der Statuszeile wird immer der freie Speicher gezeigt.
  692. - Wildcards als Argumente sind erlaubt (z.B. ME *.c).
  693. - Nach dem Laden mehrerer Dateien steht der Namen der ersten (und nicht der
  694.   letzten wie bisher) in der Statuszeile.
  695. - Die automatisch gefundenen Extensions lauten jetzt:
  696.   .C  .H  .ASM  .BAT  .FOR  .PRG  .PAS  .SYS  .BAS  .TXT
  697. - Mit ? ist ein Hilfsmenü verfügbar
  698. - Der Befehl Half ermöglicht die gleichzeitige Bearbeitung von zwei Dateien.
  699.   Dazu wird der Bildschirm in der Mitte geteilt. Im oberen Fenster erscheint
  700.   die aktuelle Datei, im unteren jeweils die nächste in der Other Reihenfolge.
  701.   Mit O kann zwischen den Fenstern umgeschaltet werden. Ein Zugriff auf die 
  702.   dritte Datei ist im Halfmodus nicht möglich. Ausschalten des Halfmodus durch 
  703.   erneutes Drücken von H. Besonders schön wird das mit EGA oder VGA Karten
  704.   im 80x43 Modus (siehe SETUP)
  705. - Im Auto-Insert-Modus bleibt die Zeilennummer nach einem # Befehl stehen
  706. - Beim Verlassen des Editor wurde manchmal ein *leerer* Dateibereich zum 
  707.   Speichern abgefragt: File changed - Save ?. Dies unterbleibt jetzt.
  708. - Bei zwei direkt aufeinanderfolgenden Line-Feeds (0Ah 0Ah) kam die Anzeige-
  709.   routine durcheinander. Der Fehler ist behoben.
  710. - Zwei neue Videomodi für VGA-Karten sind hinzugekommen (Setup Video).
  711.   Jetzt gibt es also : 80x25 , 80x50 , 100x40 , 132x44
  712. - Der Befehl <N> (für Print (das P war schon belegt...)) druckt einen 
  713.   Bereich von Zeilen aus. Anschließend erfolgt immer ein Form-Feed, so daß
  714.   auch Besitzer von Laser-Druckern das Ergebnis bewundern können. 
  715.  
  716.  
  717. Verbesserungen in der Version 1.3 von MaD-Edit
  718. ================================================
  719. von DL6DCM / Martin Doppelbauer, 14.09.93
  720.  
  721. - Die Standardfarben wurden geändert.
  722. - Der Tabulatorabstand ist jetzt auf 8 statt 4 voreingestellt.
  723. - Eine Spaltenanzeige am Anfang der zweiten Zeile ist hinzugekommen.
  724. - Das Ende der Zeile wird am LF festgemacht. CRs werden ignoriert. Auch die
  725.   Druckroutine ingnoriert CRs und sendet für jedes LF eine CRLF Kombination 
  726.   an den Drucker. Dadurch können Unix Textdateien problemlos bearbeitet und
  727.   gedruckt werden.
  728. - Beim Halfmodus entfällt die Zeile mit der Trennlinie (da Farbwahl den Unter-
  729.   schied bereits deutlich macht). Daher eine Zeile mehr für den Text.
  730. - Die Extensions .ME und .DAT wurden in die Automatikliste neu aufgenommen.
  731.  
  732.  
  733. Verbesserungen in der Version 1.4 von MaD-Edit
  734. ================================================
  735. von DL6DCM / Martin Doppelbauer, 17.09.93
  736.  
  737. - Einige Fehler bei der Benutzung von Copy, Buffer, Delete, Get, Put im
  738.   Zusammenhang mit dem Zeilenende (CRLF bzw. LF) wurden beseitigt.
  739. - Der Dual-Modus wurde neu hinzugefügt.
  740. - Die Extensions .COM .EXE. .OVL wurden in die Automatische Erkennung auf-
  741.   genommen und schalten sofort in den Dual-Modus.
  742. - Im Setup-Menü kann mit <h> und <c> die Farbnummer jetzt auch zurückge-
  743.   schaltet werden (mit <H> und <C> gehts wie gehabt vorwärts).
  744. - Falls der Execute Befehl nicht ausgeführt werden konnte wird eine aus-
  745.   sagekräftige Fehlermeldung angezeigt.
  746.  
  747. Verbesserungen in der Version 1.41 
  748. ==================================
  749. von DL6DCM / Martin Doppelbauer, 15.10.93
  750.  
  751. - Falls im Exchange-Modus die RETURN-Taste gedrückt wurde, konnte die 
  752.   Reihenfolge der CRLFs durcheinandergeraten. Fehler beseitigt.
  753.  
  754.